<!DOCTYPE html>
<html>
<head>
	<title></title>
	<link rel="stylesheet" type="text/css" href="../公用CSS文件/all.css" />
	<meta charset="utf-8">
	<script type="text/javascript" src="../js/jquery.min.js"></script> 	<script type="text/javascript" src="../js/js.js"></script>
	<style type="text/css">
		table{width: 80%}
	</style>	
</head>
<body>


<div class="dt">Linux文件操作命令</div>
<ul>
	
	<div class="ltable showimg">Linux文件相关知识</div>
	<div class="img">
		<table>
			<tr>
				<th>规则项</th><th>说明</th>
			</tr>
			<tr>
				<td>合法字符</td><td>由字母、数字、下划线、减号和其他一些特殊符号组成</td>
			</tr>
			<tr>
				<td>长度</td><td>最长256个字符，8个字节</td>
			</tr>
			<tr>
				<td>拓展名</td><td>一般无扩展名使用文件头代替，但一些安装的程序也要求有</td>
			</tr>
			<tr>
				<td>特殊字符和隐藏文件</td><td>以'.'开头为隐藏文件，要使用特殊字符可以使用转义符屏蔽特殊含义</td>
			</tr>
			<tr>
				<td>其他</td><td>linux所有文件都有权限系统，分为查看、编辑和执行， 同一目录下不能有同名的目录和文件</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">Linux文件目录操作</div>
	<div class="img">
		<table> 
			<tr>
				<th>命令</th><th>说明</th><th>参数</th><th>常用选项</th>
			</tr>
			<tr>
				<td>touch</td><td>创建文件</td><td>文件路径</td><td>-d【同时指定记录的创建时间】</td>
			</tr>
			<tr>
				<td>mkdir</td><td>创建目录</td><td>目录路径</td><td>-v【可视化操作】 &nbsp;&nbsp;&nbsp;&nbsp;-m【同时指定操作权限】 &nbsp;&nbsp;&nbsp;&nbsp;-p【递归创建】</td>
			</tr>
			<tr>
				<td>mv</td><td>移动文件，也可以用来重命名，并可批量操作</td><td>文件或目录【...】  &nbsp;&nbsp;&nbsp;&nbsp;移动到的文件夹(需要目录分隔符结束)</td><td>-v【可视化操作】</td>
			</tr>
			<tr>
				<td>cp</td><td>复制文件</td><td>源文件或目录路径  &nbsp;&nbsp;&nbsp;&nbsp;复制到的路径</td><td>-v【可视化操作】 &nbsp;&nbsp;&nbsp;&nbsp;-a【复制目录】</td>
			</tr>
			<tr>
				<td>rm</td><td>删除文件</td><td>文件路径</td><td>-v【可视化操作】 &nbsp;&nbsp;&nbsp;&nbsp;-r【递归删除，此时可删除目录】 &nbsp;&nbsp;&nbsp;&nbsp;-f【强制删除不询问】</td>
			</tr>
			<tr>
				<td>rmdir</td><td>删除空目录</td><td>目录路径</td><td>-v【可视化操作】</td>
			</tr>
			<tr>
				<td>file</td><td>查看文件类型(文件或者目录)</td><td>文件或目录路径</td><td>无</td>
			</tr>
			<tr>
				<td>ln</td><td>建立一个链接文件</td><td>链接地址 &nbsp;&nbsp;&nbsp;&nbsp;链接文件</td><td>-s【建立软链接】</td>
			</tr>
			<tr>
				<td>mknod</td><td>创建设备文件</td><td>文件名 &nbsp;&nbsp;&nbsp;&nbsp;种类(b、c) &nbsp;&nbsp;&nbsp;&nbsp;主设备号 &nbsp;&nbsp;&nbsp;&nbsp;次设备号</td><td>【-m设置权限信息】</td>
			</tr>
			<tr>
				<td>mkfifo</td><td>创建管道文件,可批量操作</td><td>文件名</td><td>【-m设置权限信息】</td>
			</tr>
		</table>
		<li>管道、设备、接口文件一般不会主动创建</li>
	</div>

	<div class="ltable showimg">Linux文件信息查看</div>
	<div class="img">
		<table>
			<tr>
				<th>命令</th><th>说明</th>
			</tr>
			<tr>
				<td>stat</td><td>查看文件元信息</td>
			</tr>
			<tr>
				<td>file</td><td>查看文件类型</td>
			</tr>
		</table>
	</div>
</ul>

<div class="dt">Linux文件内容操作</div>
<ul>
	<div class="ltable showimg">cat命令操作文件内容</div>
	<div class="img">
		<table>
			<tr>
				<th>命令</th><th>说明</th>
			</tr>
			<tr>
				<td>cat 文件路径</td><td>一次查看整个文件，无法创建文件</td>
			</tr>
			<tr>
				<td>cat > 文件名</td><td>在当前目录创建一个文件并编辑内容</td>
			</tr>
			<tr>
				<td>cat > 文件名 << EOF </td><td>创建一个文件输入内容并指定结束符（EOF非固定），两个算术符号子句能调换位置</td>
			</tr>
			<tr>
				<td>cat >> 文件名 << EOF </td><td>追加内容到末尾并指定结束符（EOF非固定），两个算术符号子句能调换位置</td>
			</tr>
			<tr>
				<td>cat 文件2  文件3  > 文件1</td><td>将几个文件合并为一个文件</td>
			</tr>
			<tr>
				<td>cat /dev/null > 文件</td><td>清空文件的内容，也可以用来创建空文件</td>
			</tr>
		</table>
		<li>cat命令更术语的作用是创建一个输入流，使用">"符号是将cat命令产生的输入流写入右边的文件，/dev/null在产生输入流命令中使用表示标准输出重定向到空设备文件，清空输入流</li>
	</div>
	<div class="ltable showimg">cat命令常用选项</div>
	<div class="img">
		<table>
			<tr>
				<th>选项</th><th>意义</th><th>使用场景</th>
			</tr>
			<tr>
				<td>-n</td><td>在每行行首加入行数编号</td><td>所有场景，仅仅cat查看已有不会更改文件内容写入行数，否则会写入</td>
			</tr>
			<tr>
				<td>-b</td><td>在非空白行行首加入行数编号</td><td>同-n</td>
			</tr>
			<tr>
				<td>-s</td><td>合并连续的空白行为一行</td><td>查看命令仅显示，其他命令更改内容</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">less和more命令操作文件内容</div>
	<div class="img">
		<table>
			<tr>
				<th>命令</th><th>说明</th>
			</tr>
			<tr>
				<td>less 文件名</td><td>查看一个文件，默认显示16~17行，能前后查看</td>
			</tr>
			<tr>
				<td>less 文件2 文件3 > 文件1</td><td>将文件2和文件3内容输入到文件1（同cat）</td>
			</tr>
			<tr>
				<td>more 文件名</td><td>查看一个文件，在尾部显示当前内容百分比位置，仅能向后查看</td>
			</tr>
			<tr>
				<td>more 文件2 文件3 > 文件1</td><td>将文件2和文件3内容输入到文件1（同cat）</td>
			</tr>

		</table>
		<li>less和more命令没有编辑功能</li>
		<li>less 和more都是分页查看（more不能往上翻行，退出按q，空格为往下翻页，B键为往上翻页，回车键为往下翻一行，less可使用上下键进行翻行）
   tail和head默认输出10行，如需修改 接 -#  例如：tail -15 /var/log/messages</li>
		<li>因为Linux中，less、more、cat都会产生输入流，也就能使用"输入流 > 文件"将产生的输入流定向输入到一个文件中</li>
	</div>

	<div class="ltable showimg">less和more常用选项</div>
	<div class="img">
		<table>
			<tr>
				<th>选项</th><th>意义</th><th>说明</th>
			</tr>
			<tr>
				<td>-N</td><td>行首显示行数</td><td></td>
			</tr>
			<tr>
				<td>+数字</td><td>从第几行开始显示</td><td></td>
			</tr>
			<tr>
				<td>+/字符串</td><td>在展示的文本中检索字符，在指令窗口会高亮匹配的字符</td><td>more无法使用(帮助文档有错)，字符串可以用引号也可以不用，要使用转义符就必须用引号</td>
			</tr>
			<tr>
				<td>-c</td><td>从顶部清屏，然后显示</td><td></td>
			</tr>
			<tr>
				<td>-s</td><td>合并多行空格为一行</td><td></td>
			</tr>
			<tr>
				<td>-m</td><td>以类似more查看的方式在尾部显示进度条</td>
			</tr>
			<tr>
				<td>-f</td><td>强制打开特殊文件</td>
			</tr>

		</table>
		<li>在--help和网络检索中，more和less都有这些参数，但阿里云centos7默认系统中无法使用(即使--help展示的option有)</li>
	</div>

	<div class="ltable showimg">more和less进入内容后的常用操作</div>
	<div class="img">
		<table>
			<tr>
				<th>操作</th><th>意义</th>
			</tr>
			<tr>
				<td>回车键</td><td>浏览之后的内容</td>
			</tr>
			<tr>
				<td>空格键</td><td>翻页</td>
			</tr>
			<tr>
				<td>Ctrl+f或f</td><td>同翻页</td>
			</tr>
			<tr>
				<td>Ctrl+b或b</td><td>向上翻页</td>
			</tr>
			<tr>
				<td>=</td><td>输出当前行数(以展示的最后一行为基准)</td>
			</tr>
			<tr>
				<td>v</td><td>调用vi编辑器编辑文件，当退出vi编辑器时，会退回到查看文件状态</td>
			</tr>
			<tr>
				<td>q</td><td>退出查看命令</td>
			</tr>
		</table>
		<li>网络上:shell命令调用shell指令有误，其实该指令只能进入到vi编辑器使用，调用的是vi编辑器命令</li>
	</div>

	<div class="ltable showimg">其他文件内容查看命令</div>
	<div class="img">
		<table>
			<tr>
				<th>命令</th><th>说明</th><th>常用选项卡</th>
			</tr>
			<tr>
				<td>head</td><td>查看文件前指定行内容，默认十行</td><td>-数字【指定行数】</td>
			</tr>
			<tr>
				<td>tail</td><td>查看文件后指定行内容，默认十行</td><td>-数字【指定行数】  -f【持续跟踪内容输出】</td>
			</tr>
			<tr>
				<td>nl</td><td>number of lines，将指定文件的内容或指定内容加上行号写到标准输出</td><td>无</td>
			</tr>
			<tr>
				<td>tailf</td><td>查看文件后指定行内容，默认十行，并跟踪文件变动</td><td>-数字【指定行数】</td>
			</tr>
		</table>
		<li>tail -f和tailf的区别，tailf为被动跟踪变动tail为主动检查(网络信息无法验证)，tail -f无法指定行数，tailf可以(自己测试)</li>
	</div>

	



</ul>


<div class="dt">Linux通用命令选项</div>
<ul>
	
	<div class="ltable showimg">通用选项</div>
	<div class="img">
		<table>
			<tr>
				<th>选项</th><th>意义</th>
			</tr>
			<tr>
				<td>-v</td><td>verbose 可视化操作，Linux系统为了节省性能开销，大部分操作成功都是没有提示信息静默操作的</td>
			</tr>
			<tr>
				<td>-f</td><td>force强制操作，否则遭遇需要用户确认的操作会开始询问</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">通用指令</div>
	<div class="img">
		<table>
			<tr>
				<th>指令</th><th>说明</th>
			</tr>
			<tr>
				<td>Ctrl+c</td><td>强制终止前面的操作，一般只能终止小的功能性质操作，包括软件的内部的某一步操作</td>
			</tr>
			<tr>
				<td>exit</td><td>从软件进程中退出来</td>
			</tr>
			<tr>
				<td>quit</td><td>同上</td>
			</tr>
		</table>
	</div>

</ul>

<div class="dt">Linux系统管理相关命令</div>
<ul>
	<div class="ltable showimg">linux关机重启命令</div>
	<div class="img">
		<table>
			<tr>
				<th>命令</th><th>说明</th><th>常用选项</th>
			</tr>
			<tr>
				<td>shutdown 【选项】 【时间】</td><td>关机或重启系统</td><td>-r【重启】 -h【关机并关闭电源】</td>
			</tr>
			<tr>
				<td>halt 【选项】</td><td>间接调用shutdown -h关机</td><td>-p【关闭电源】</td>
			</tr>
			<tr>
				<td>poweroff 【选项】</td><td>间接调用halt -p关机</td><td>无</td>
			</tr>
			<tr>
				<td>init 运行级别</td><td>init 0为关机，init 1为重启。程序进程重启和关机</td><td>无</td>
			</tr>
			<tr>
				<td>reboot</td><td>重启系统</td><td>无</td>
			</tr>
		</table>
		<li><a href="img/Linux关机命令.png">Linux关机区别和用法</a></li>
	</div>

	<div class="ltable showimg">linux其他系统信息</div>
	<div class="img">
		<table>
			<tr>
				<th>操作</th><th>命令</th><th>常用选项</th>
			</tr>
			<tr>
				<td>查看软件时间</td><td>date</td><td>无</td>
			</tr>
			<tr>
				<td>查看硬件时间</td><td>hwclock</td><td>无</td>
			</tr>
			<tr>
				<td>查看ip</td><td>ip a</td><td>无</td>
			</tr>
		</table>
	</div>

</ul>

<div class="dt">Linux正则和匹配符</div>
<ul>
	<div class="ltable showimg">bash shell通配符</div>
	<div class="img">
		<table>
			<tr>
				<th>匹配符</th><td>意义</td>
			</tr>
			<tr>
				<td>*</td><td>配任意长度的任意字符</td>
			</tr>
			<tr>
				<td>?</td><td>匹配单个任意字符</td>
			</tr>
			<tr>
				<td>[[::]]</td><td>匹配制定范围内的单个字符，常用简化写法也可以使用[]，例如[a-z] [0-9]</td>
			</tr>
			<tr>
				<td>[^]</td><td>取反</td>
			</tr>
		</table>
	</div>	

</ul>

<div class="dt">Linux查找命令</div>
<ul>
	<div class="ltable showimg">find和grep基本用法</div>
	<div class="img">
		<table>
			<tr>
				<th>命令</th><th>语法</th>
			</tr>
			<tr>
				<td>find</td><td>find 【查找路径=当前】 【查找条件】 【处理动作】</td>
			</tr>
			<tr>
				<td>grep</td><td>grep 【查找模式】 【查找字符】 【选项】 文件</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">find命令查找条件</div>
	<div class="img">
		<table>
			<tr>
				<th>查找条件</th><th>选项</th><td>参数值</td>
			</tr>
			<tr>
				<td>名称</td><td>-name</td><td>文件名，可以使用通配符</td>
			</tr>
			<tr>
				<td>类型</td><td>-type</td><td>文件类型标识字符:f普通文件、d目录、l符号、s套接字、b块设备、c字符设备、p管道</td>
			</tr>
			<tr>
				<td>大小</td><td>-size</td><td>+/-文件大小，常用单位k、M、G。查找大于/小于指定大小的文件</td>
			</tr>
			<tr>
				<td>时间元信息</td><td>-[amc]tim/min</td><td>-数字，如果是time代表天数，min代表分钟数。a:access创建时间，m:modify修改时间，c:change修改时间</td>
			</tr>
			<tr>
				<td>权限</td><td>-perm</td><td>三位数字表示的权限</td>
			</tr>
			<tr>
				<td>属主</td><td>-user</td><td>用户名</td>
			</tr>
			<tr>
				<td>属组</td><td>-group</td><td>组名</td>
			</tr>
			<tr>
				<td>属主uid</td><td>-uid</td><td>用户id编号</td>
			</tr>
			<tr>
				<td>属组gid</td><td>-gid</td><td>组gid</td>
			</tr>
			<tr>
				<td>无属主</td><td>-nouser</td><td>无</td>
			</tr>
			<tr>
				<td>无属组</td><td>-nogroup</td><td>无</td>
			</tr>

		</table>
	</div>

	<div class="ltable showimg">find命令处理动作</div>
	<div class="img">
		<table>
			<tr>
				<th>处理动作</th><th>参数字符</th>
			</tr>
			<tr>
				<td>查看匹配文件名</td><td>-print</td>
			</tr>
			<tr>
				<td>查看简略文件信息</td><td>-ls</td>
			</tr>
			<tr>
				<td>删除</td><td>-delete</td>
			</tr>
			<tr>
				<td>结果保存至文件</td><td>-fls 文件，会将匹配文件结果的ls展示信息写入到文件</td>
			</tr>
			<tr>
				<td>以文件为参数执行命令</td><td>-exec 命令 【选项】 {} \; {}用于引用查找到的文件</td>
			</tr>
			<tr>
				<td>以文件为参数执行命令(需要询问)</td><td>-ok 命令 【选项】 {} \; {}用于引用查找到的文件</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">grep查找模式</div>
	<div class="img">
		<table>
			<tr>
				<th>模式</th><th>简单范式</th>
			</tr>
			<tr>
				<td>正则查找</td><td>grep -E 正则 文件路径</td>
			</tr>
			<tr>
				<td>多项查找</td><td>grep -e 查找字符 -e 查找字符 【...】文件路径</td>
			</tr>
			<tr>
				<td>多文件查找</td><td>grep -l 查找字符 文件路径 【文件路径...】</td>
			</tr>
			<tr>
				<td>静默查找(不显示结果只显示成功与否)</td><td>grep -q 查找字符 文件路径</td>
			</tr>
			<tr>
				<td>反向匹配</td><td>grep -v 查找字符 文件路径</td>
			</tr>
			<tr>
				<td>显示结果的前指定行</td><td>grep 查找字符 -A 行数  文件路径</td>
			</tr>
			<tr>
				<td>显示结果的后指定行</td><td>grep 查找字符 -B 行数  文件路径</td>
			</tr>
			<tr>
				<td>显示结果的前后指定行</td><td>grep 查找字符 -C 行数  文件路径</td>
			</tr>
			<tr>
				<td>搜索目录下指定正则文件</td><td>grep 查找字符  目录 -r --include 正则</td>
			</tr>
			<tr>
				<td>反向搜索目录下指定正则文件</td><td>grep 查找字符  目录 -r --exclude 正则</td>
			</tr>
		</table>
		<li><a href="img/grep命令.png">参考资料</a></li>
	</div>

	<div class="ltable showimg">grep其他选项功能</div>
	<div class="img">
		<table>
			<tr>
				<th>功能</th><th>选项</th>
			</tr>
			<tr>
				<td>忽略大小写</td><td> -i </td>
			</tr>
			<tr>
				<td>仅匹配字符不匹配整行</td><td> -o </td>
			</tr>
		</table>
	</div>

</ul>

<div class="dt">Linux系统进程管理</div>
<ul>

	<div class="ltable showimg">linux进程管理命令</div>
	<div class="img">
		<table>
			<tr>
				<th>操作</th><th>指令</th><th>说明</th>
			</tr>
			<tr>
				<td>杀死进程</td>
				<td>kill  【-signal】 pid</td>
				<td>signal为发送给进程的信号，-9为强制终结</td>
			</tr>
		</table>
	</div>

</ul>

<div class="dt">Linux进程管理命令</div>
<ul>
	<div class="ltable showimg">lsof命令</div>
	<div class="img">
		<table>
			<tr>
				<th>操作</th><th>指令</th>
			</tr>
			<tr>
				<td>查看指定端口运行的进程和占用的文件</td>
				<td>lsof -i:端口号(root用户可以不指定端口号)</td>
			</tr>
			<tr>
				<td>查看执行文件的进程</td>
				<td>lsof 文件</td>
			</tr>
			<tr>
				<td>查看进程占用的文件</td>
				<td>lsof -c 进程名</td>
			</tr>
			<tr>
				<td>查看指定用户进程占用的文件</td>
				<td>lsof -u 用户名</td>
			</tr>
			<tr>
				<td>查看指定用户组ID开启的进程和占用的文件</td>
				<td>lsof -g Gid</td>
			</tr>
			<tr>
				<td>查看指定目录下被占用的文件</td>
				<td>lsof -d 目录</td>
			</tr>
			<tr>
				<td>递归查看指定目录下被占用的文件</td>
				<td>lsof -D 目录</td>
			</tr>
			<tr>
				<td>显示各进程文件描述符下对应的被占用文件</td>
				<td>lsof -d FD文件描述符</td>
			</tr>
			<tr>
				<td>显示所有打开的端口和UNIX domain文件</td>
				<td>lsof -i -U</td>
			</tr>
		</table>
		<li>ls命令显示的信息依次为command进程名、PID进程ID、User运行用户、FD文件描述符、 Type进程类型、Device磁盘名、Size文件的大小、Node文件在索引上的标识、Name文件确切的全路径</li>
		<li>type进程的类型可以是文件类型DIR或REG(普通文件)、也可以是IPv4这种协议或者套接字，Node可以为数字或UDP、TCP这类协议名</li>
	</div>

	<div class="ltable showimg">netstat命令</div>
	<div class="img">
		<table>
			<tr>
				<td>选项参数</td><td>说明</td>
			</tr>
			<tr>
				<td>-t</td>
				<td>tcp，显示tcp相关进程</td>
			</tr>
			<tr>
				<td>-u</td>
				<td>udp，显示udp相关进程</td>
			</tr>
			<tr>
				<td>-l</td>
				<td>listen，仅列出在监听的进程</td>
			</tr>
			<tr>
				<td>-p</td>
				<td>program name，显示进程名</td>
			</tr>
			<tr>
				<td>-c</td>
				<td>continue，持续监听</td>
			</tr>
			<tr>
				<td>-s</td>
				<td>查看统计信息</td>
			</tr>
		</table>
		<li>netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据，一般用于检验本机各端口的网络连接情况</li>
		<li>netstat一般显示的信息中，proto【col】为传输协议名，Recv-Q、Send-Q为接受和发送队列的阻塞状态(1为阻塞)Q指的是Queque队列，Foreign Address和Local Address为远程和本地的套接字地址</li>
		<li>netstat无参数时也能显示数据，centos 7可能是unix内核信息，Type为通讯类型为dgram数据流和stream数据报，此外还会显示Inode、path地址等信息</li>
	</div>
</ul>

<div class="dt">Linux系统其他指令</div>
<ul>
	<div class="ltable showimg">linux系统bash shell快捷操作</div>
	<div class="img">
		<table>
			<tr>
				<th>操作</th><th>命令</th>
			</tr>
			<tr>
				<td>终止正在运行的程序</td><td>ctrl + c</td>
			</tr>
			<tr>
				<td>清屏</td><td>ctrl + l</td>
			</tr>
			<tr>
				<td>跳转至光标首行</td><td>ctrl + a</td>
			</tr>
			<tr>
				<td>跳转至光标行尾</td><td>ctrl + e</td>
			</tr>
			<tr>
				<td>清除命令字符至左侧</td><td>ctrl + u</td>
			</tr>
			<tr>
				<td>清除命令字符至右侧</td><td>ctrl + k</td>
			</tr>
			<tr>
				<td>再一次执行上次命令</td><td>!!</td>
			</tr>
			<tr>
				<td>查看历史命令记录</td><td>history</td>
			</tr>
			<tr>
				<td>调用历史命令再执行</td><td>!+history历史命令编号调用指定编号命令，!+关键字调用匹配该关键字的命令</td>
			</tr>
			<tr>
				<td>命令补全</td><td>Tab键，有时需要按两次</td>
			</tr>
			<tr>
				<td>调用上次命令参数</td><td>ESC + .</td>
			</tr>
			<tr>
				<td>查看指令位置</td><td>which + 指令</td>
			</tr>
		</table>
	</div>
</ul>

</body>
</html>

